package src.java.easy;

public class Solution88 {
    //    public static void merge(int[] nums1, int m, int[] nums2, int n) {
//        if (n == 0) return;
//        if (m == 0) {
//            for (int i = 0; i < n; i++) {
//                nums1[i] = nums2[i];
//            }
//        }
//        int index = n + m - 1;
//        int index1 = m - 1;
//        int index2 = n - 1;
//        while (index1 >= 0 && index2 >= 0) {
//            if (nums1[index1] >= nums2[index2]) {
//                nums1[index] = nums1[index1];
//                index1--;
//                index--;
//            } else {
//                nums1[index] = nums2[index2];
//                index2--;
//                index--;
//            }
//        }
//        if (index1 < 0) {
//            for (int i = index2; i >= 0; i--) {
//                nums1[index]=nums2[i];
//                index--;
//            }
//        }
//    }
    public static void merge(int[] nums1, int m, int[] nums2, int n) {
        int index1 = m - 1;
        int index2 = n - 1;
        for (int i = m + n - 1; i >= 0; i--) {
            if (index2 < 0) break;
            if (index1 < 0) {
                nums1[i] = nums2[index2];
                index2--;
                continue;
            }
            if (nums1[index1] >= nums2[index2]) {
                nums1[i] = nums1[index1];
                index1--;
            } else {
                nums1[i] = nums2[index2];
                index2--;
            }
        }
    }

    public static void main(String[] args) {
        int nums1[] = {0, 0, 0, 0, 0};
        int m = 0;
        int nums2[] = {1, 2, 3, 4, 5};
        int n = 5;
        merge(nums1, m, nums2, n);
    }

}